SpringBoot:1.5.10.RELEASE
Spring Framework 提供了 @ExceptionHandler 注解用于异常处理。
定义自定义异常:
1 |
|
定义在 Controller 内部
1 |
|
定义在 Controller 只能处理 Controller 内部产生的异常
定义在 BaseController 基类中
为了复用,可以将其定义在 BaseController 基类中,任何一个 Controller 只要继承 BaseController 即可。
1 | import com.example.exception.BaseCustomExcpetion; |
1 | import com.example.exception.BaseCustomExcpetion; |
定义在接口中
为了减少单继承的影响,将其定义在接口中,利用 JDK8 default 新特性。
1 | import com.example.exception.BaseCustomExcpetion; |
1 | import com.example.exception.BaseCustomExcpetion; |
使用 @ControllerAdvice 全局拦截
使用 @ControllerAdvice 全局拦截可以更简便。
1 | import com.example.exception.BaseCustomExcpetion; |
当然了也可以将 GlobalExceptionHandler 结合 JDK 8 接口 default 特性。
Controller 内能处理的优先处理
1 | import com.example.exception.BaseCustomExcpetion; |
代码详见GitHub 上
example-boot/example-exception-handler